library(tidyverse)
library(sf)
library(maps)
library(plotly)
italy <- map_data("italy")

catania <- italy %>% 
  filter(region == "Catania")

catania_crime <- read_csv("Sicily2026_Catania_IncomeCrime_ONE.csv")
# Plot the base map
italy_map <- ggplot() +
  geom_polygon(data = italy, aes(x = long, y = lat, group = group), fill = "white", color = "lightgrey") + 
    geom_polygon(data = italy, aes(x = long, y = lat, group = region), fill = NA, color = NA) + 

  geom_polygon(data = catania, aes(x = long, y = lat, group = region), fill = "red", color = "red") +
  #geom_point(data = catania_crime, aes(x = Longitude, y = Latitude, group = CrimeTier, color = CrimeTier)) +
  coord_map() +
  theme_void()# +
 # labs(title = "Italy Base Map")

ggplotly(italy_map)
catania_crime <- catania_crime %>% 
  filter(IncomeTier != "Baseline") %>% 
  mutate(visitability = factor(StyleKey, levels = c(
                                                    "Income=Higher | Crime=Lower", 
                                                    "Income=Mid | Crime=Lower",
                                                    "Income=Mid | Crime=Mid",
                                                    "Income=Lower | Crime=Mid",
                                                    "Income=Lower | Crime=Higher"),
                              labels = c(1,2,3,4,5)
                                                   ),
visitability = factor(visitability, labels = c(
                                                    "Income=Higher | Crime=Lower", 
                                                    "Income=Mid | Crime=Lower",
                                                    "Income=Mid | Crime=Mid",
                                                    "Income=Lower | Crime=Mid",
                                                    "Income=Lower | Crime=Higher"),
                              levels = c(1,2,3,4,5)
                                                   )
)
# Plot Catania are only
catania_map <- ggplot() +
  
  geom_polygon(data = catania, aes(x = long, y = lat, group = group), fill = "white", color = "lightgrey") +
  #geom_point(data = catania_crime, aes(x = Longitude, y = Latitude, group = CrimeTier, color = CrimeTier)) +
  #geom_point(data = catania_crime, aes(x = Longitude, y = Latitude, group = IncomeTier, color = IncomeTier)) +
  geom_point(data = catania_crime, aes(x = Longitude, y = Latitude, group = Name, color = visitability)) +
  coord_map() +
  theme_void() +
 labs(title = "Catania Region") +
 scale_color_manual(values = colorRampPalette(c("darkgreen", "red"))(5)) 
ggplotly(catania_map)
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7ciwgbWVzc2FnZSA9IEZBTFNFLCB3YXJuaW5nID0gRkFMU0V9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoc2YpDQpsaWJyYXJ5KG1hcHMpDQpsaWJyYXJ5KHBsb3RseSkNCmBgYA0KDQoNCmBgYHtyLCBtZXNzYWdlID0gRkFMU0UsIHdhcm5pbmcgPSBGQUxTRX0NCml0YWx5IDwtIG1hcF9kYXRhKCJpdGFseSIpDQoNCmNhdGFuaWEgPC0gaXRhbHkgJT4lIA0KICBmaWx0ZXIocmVnaW9uID09ICJDYXRhbmlhIikNCg0KY2F0YW5pYV9jcmltZSA8LSByZWFkX2NzdigiU2ljaWx5MjAyNl9DYXRhbmlhX0luY29tZUNyaW1lX09ORS5jc3YiKQ0KYGBgDQoNCmBgYHtyfQ0KIyBQbG90IHRoZSBiYXNlIG1hcA0KaXRhbHlfbWFwIDwtIGdncGxvdCgpICsNCiAgZ2VvbV9wb2x5Z29uKGRhdGEgPSBpdGFseSwgYWVzKHggPSBsb25nLCB5ID0gbGF0LCBncm91cCA9IGdyb3VwKSwgZmlsbCA9ICJ3aGl0ZSIsIGNvbG9yID0gImxpZ2h0Z3JleSIpICsgDQogICAgZ2VvbV9wb2x5Z29uKGRhdGEgPSBpdGFseSwgYWVzKHggPSBsb25nLCB5ID0gbGF0LCBncm91cCA9IHJlZ2lvbiksIGZpbGwgPSBOQSwgY29sb3IgPSBOQSkgKyANCg0KICBnZW9tX3BvbHlnb24oZGF0YSA9IGNhdGFuaWEsIGFlcyh4ID0gbG9uZywgeSA9IGxhdCwgZ3JvdXAgPSByZWdpb24pLCBmaWxsID0gInJlZCIsIGNvbG9yID0gInJlZCIpICsNCiAgI2dlb21fcG9pbnQoZGF0YSA9IGNhdGFuaWFfY3JpbWUsIGFlcyh4ID0gTG9uZ2l0dWRlLCB5ID0gTGF0aXR1ZGUsIGdyb3VwID0gQ3JpbWVUaWVyLCBjb2xvciA9IENyaW1lVGllcikpICsNCiAgY29vcmRfbWFwKCkgKw0KICB0aGVtZV92b2lkKCkjICsNCiAjIGxhYnModGl0bGUgPSAiSXRhbHkgQmFzZSBNYXAiKQ0KDQpnZ3Bsb3RseShpdGFseV9tYXApDQpgYGANCg0KYGBge3J9DQpjYXRhbmlhX2NyaW1lIDwtIGNhdGFuaWFfY3JpbWUgJT4lIA0KICBmaWx0ZXIoSW5jb21lVGllciAhPSAiQmFzZWxpbmUiKSAlPiUgDQogIG11dGF0ZSh2aXNpdGFiaWxpdHkgPSBmYWN0b3IoU3R5bGVLZXksIGxldmVscyA9IGMoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluY29tZT1IaWdoZXIgfCBDcmltZT1Mb3dlciIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmNvbWU9TWlkIHwgQ3JpbWU9TG93ZXIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmNvbWU9TWlkIHwgQ3JpbWU9TWlkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5jb21lPUxvd2VyIHwgQ3JpbWU9TWlkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5jb21lPUxvd2VyIHwgQ3JpbWU9SGlnaGVyIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKDEsMiwzLDQsNSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksDQp2aXNpdGFiaWxpdHkgPSBmYWN0b3IodmlzaXRhYmlsaXR5LCBsYWJlbHMgPSBjKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmNvbWU9SGlnaGVyIHwgQ3JpbWU9TG93ZXIiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5jb21lPU1pZCB8IENyaW1lPUxvd2VyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5jb21lPU1pZCB8IENyaW1lPU1pZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluY29tZT1Mb3dlciB8IENyaW1lPU1pZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluY29tZT1Mb3dlciB8IENyaW1lPUhpZ2hlciIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gYygxLDIsMyw0LDUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQopDQpgYGANCg0KDQoNCmBgYHtyfQ0KIyBQbG90IENhdGFuaWEgYXJlIG9ubHkNCmNhdGFuaWFfbWFwIDwtIGdncGxvdCgpICsNCiAgDQogIGdlb21fcG9seWdvbihkYXRhID0gY2F0YW5pYSwgYWVzKHggPSBsb25nLCB5ID0gbGF0LCBncm91cCA9IGdyb3VwKSwgZmlsbCA9ICJ3aGl0ZSIsIGNvbG9yID0gImxpZ2h0Z3JleSIpICsNCiAgI2dlb21fcG9pbnQoZGF0YSA9IGNhdGFuaWFfY3JpbWUsIGFlcyh4ID0gTG9uZ2l0dWRlLCB5ID0gTGF0aXR1ZGUsIGdyb3VwID0gQ3JpbWVUaWVyLCBjb2xvciA9IENyaW1lVGllcikpICsNCiAgI2dlb21fcG9pbnQoZGF0YSA9IGNhdGFuaWFfY3JpbWUsIGFlcyh4ID0gTG9uZ2l0dWRlLCB5ID0gTGF0aXR1ZGUsIGdyb3VwID0gSW5jb21lVGllciwgY29sb3IgPSBJbmNvbWVUaWVyKSkgKw0KICBnZW9tX3BvaW50KGRhdGEgPSBjYXRhbmlhX2NyaW1lLCBhZXMoeCA9IExvbmdpdHVkZSwgeSA9IExhdGl0dWRlLCBncm91cCA9IE5hbWUsIGNvbG9yID0gdmlzaXRhYmlsaXR5KSkgKw0KICBjb29yZF9tYXAoKSArDQogIHRoZW1lX3ZvaWQoKSArDQogbGFicyh0aXRsZSA9ICJDYXRhbmlhIFJlZ2lvbiIpICsNCiBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gY29sb3JSYW1wUGFsZXR0ZShjKCJkYXJrZ3JlZW4iLCAicmVkIikpKDUpKSANCmBgYA0KDQpgYGB7cn0NCmdncGxvdGx5KGNhdGFuaWFfbWFwKQ0KYGBgDQoNCg==